/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package ManagersUI;

import ManagersUI.CatedraticoModificarManager;
import ControladoresUI.CatedraticoController;
import Entidades.Catedratico;
import Entidades.Horariocatedratico;
import java.io.IOException;
import java.util.logging.*;
import javafx.fxml.FXMLLoader;
import javafx.scene.*;
import Entidades.Usuario;
import javafx.scene.layout.HBox;
import javafx.scene.layout.StackPane;
import javafx.stage.Modality;
import javafx.stage.Stage;
import javafx.stage.StageStyle;

/**
 *
 * @author JEscalante
 */
public class CatedraticoManager {
    private Scene scene;
    private Stage stage;
    public Parent root;
    public HBox pnlPrincipal;
    public CatedraticoManager(Scene scene, Stage stage) {
        this.scene = scene;
        this.stage = stage;
    }
  /*  public void abrirPanelUsuarios(Usuario usuario){
        try {
            FXMLLoader loader = new FXMLLoader(getClass().getResource("/VistasUI/pnlUsuarios.fxml"));
            scene.setRoot((Parent) loader.load());
            UsuariosController controller = loader.<UsuariosController>getController();
            controller.initManager(this, usuario);
        } catch (IOException ex) {
            Logger.getLogger(UsuariosManager.class.getName()).log(Level.SEVERE, null, ex);
        }
    }*/
    public void abrirPanelCatedratico(Usuario usuario){
        try {
            FXMLLoader loader = new FXMLLoader(getClass().getResource("/VistasUI/pnlCatedraticos.fxml"));
            root = (Parent) loader.load();
            CatedraticoController controller = loader.<CatedraticoController>getController();
            controller.initManager(this, usuario);
        } catch (IOException ex) {
            Logger.getLogger(CatedraticoManager.class.getName()).log(Level.SEVERE, null, ex);
        }
    }
     public void showPnlCatedraticoInicio(Usuario usuario){
       
         Parent root = null;
        CatedraticoInicioManager catedraticoInicioManager = new CatedraticoInicioManager(scene,stage, this);
        catedraticoInicioManager.abrirPanelCatedraticoInicio(usuario);
        root = catedraticoInicioManager.root;
        
        if(pnlPrincipal.getChildren().size()>1)
            pnlPrincipal.getChildren().remove(1);
        //this.ventanaManager.showPnlUsuarios(Usuario);
        pnlPrincipal.getChildren().add(root);
    }
    public void showPnlFichaCatedratico(Usuario usuario){
        Parent root = null;
        FichaCatedraticoManager fichaCatedraticoManager = new FichaCatedraticoManager(scene,stage, this);
        fichaCatedraticoManager.abrirPanelFichaCatedratico(usuario);
        root = fichaCatedraticoManager.root;
        
        if(pnlPrincipal.getChildren().size()>1)
            pnlPrincipal.getChildren().remove(1);
        //this.ventanaManager.showPnlUsuarios(Usuario);
        pnlPrincipal.getChildren().add(root);
    }
 
     public void showPnlCursosPosibles(Usuario usuario,Catedratico registro){
        Parent root = null;
        CursosPosiblesManager cursosPosiblesManager = new CursosPosiblesManager(scene,stage,this);
        cursosPosiblesManager.abrirPanelCursosPosiblesInicio(usuario,registro);
        root = cursosPosiblesManager.root;
        
        if(pnlPrincipal.getChildren().size()>1)
            pnlPrincipal.getChildren().remove(1);
        //this.ventanaManager.showPnlUsuarios(Usuario);
        pnlPrincipal.getChildren().add(root);
    }
     public void showPnlHorarioDisponible(Usuario usuario,Catedratico registro){
        Parent root = null;
        HorarioDisponibleManager horarioManager = new HorarioDisponibleManager(scene,stage,this);
        horarioManager.abrirPanelHorarioDisponible(usuario,registro);
        root = horarioManager.root;
        
        if(pnlPrincipal.getChildren().size()>1)
            pnlPrincipal.getChildren().remove(1);
        //this.ventanaManager.showPnlUsuarios(Usuario);
        pnlPrincipal.getChildren().add(root);
    }
    public void showPnlCatedraticoRegistro(Usuario usuario){
        Parent root = null;
        CatedraticoRegistroManager catedraticoRegistroManager = new CatedraticoRegistroManager(scene,stage,this);
        catedraticoRegistroManager.abrirPanelCatedraticoRegistro(usuario);
        root = catedraticoRegistroManager.root;
        
        if(pnlPrincipal.getChildren().size()>1)
            pnlPrincipal.getChildren().remove(1);
        //this.ventanaManager.showPnlUsuarios(Usuario);
        pnlPrincipal.getChildren().add(root);
    }
    public void showPnlCatedraticoModificar(Usuario usuario,Catedratico registro){
        Parent root = null;
        CatedraticoModificarManager catedraticoModificarManager = new CatedraticoModificarManager(scene,stage,this);
        catedraticoModificarManager.abrirPanelCatedraticoModificar(usuario,registro);
        root = catedraticoModificarManager.root;
        
        if(pnlPrincipal.getChildren().size()>1)
            pnlPrincipal.getChildren().remove(1);
        //this.ventanaManager.showPnlUsuarios(Usuario);
        pnlPrincipal.getChildren().add(root);
    }
    public void showPnlHorariocatedraticoModificar(Usuario usuario,Horariocatedratico registro){
        scene = new Scene(new StackPane());
        Stage nuevaStage = new Stage();
        nuevaStage.initStyle(StageStyle.UTILITY);
        nuevaStage.initModality(Modality.APPLICATION_MODAL);
        HorariocatedraticoModificarManager horarioModificarManager = new HorariocatedraticoModificarManager(scene,nuevaStage,this,usuario);
        horarioModificarManager.abrirPanelHorariocatedraticoModificar(usuario,registro);

        nuevaStage.setScene(scene);
        nuevaStage.setTitle("Registro de jornadas");
        nuevaStage.show();
    }
     public void showPnlHorariocatedraticoRegistro(Usuario usuario,Catedratico registro){
        scene = new Scene(new StackPane());
        Stage nuevaStage = new Stage();
        nuevaStage.initStyle(StageStyle.UTILITY);
        nuevaStage.initModality(Modality.APPLICATION_MODAL);
        HorariocatedraticoRegistroManager horarioRegistroManager = new HorariocatedraticoRegistroManager(scene,nuevaStage,this);
        horarioRegistroManager.abrirPanelHorariocatedraticoRegistro(usuario,registro);

        nuevaStage.setScene(scene);
        nuevaStage.setTitle("Registro de jornadas");
        nuevaStage.show();
    }
}
